package setting

import (
	"github.com/Unknwon/goconfig"
	"log"
)

var (
	filepath = "conf/app.ini"

	Env string

	PROD = "production"
	DEV  = "development"
	// mysql
	DSN                       string
	MYSQL_POOL_MAX_ID_LE_CONN int
	MYSQL_POOL_MAX_OPEN_CONN  int
	TICKER                    int64

	ACTIVEMQ_HOST_PORT string
	ACTIVEMQ_TOPIC     string

	SERVER_PORT string
)

func init() {
	var (
		cfg *goconfig.ConfigFile
		err error
	)
	cfg, err = goconfig.LoadConfigFile(filepath)
	if err != nil {
		log.Fatalf("读取配置失败: %v", err)
	}

	Env, err = cfg.GetValue(goconfig.DEFAULT_SECTION, "env")
	if err != nil {
		Env = PROD
	}
	if Env != PROD {
		Env = DEV
	}

	DSN, err = cfg.GetValue(Env, "DSN")
	if err != nil {
		log.Fatalf("数据库连接配置错误:%v", err)
	}

	MYSQL_POOL_MAX_ID_LE_CONN, err = cfg.Int(Env, "MYSQL_POOL_MAX_ID_LE_CONN")
	if err != nil {
		MYSQL_POOL_MAX_ID_LE_CONN = 20
	}
	MYSQL_POOL_MAX_OPEN_CONN, err = cfg.Int(Env, "MYSQL_POOL_MAX_OPEN_CONN")
	if err != nil {
		MYSQL_POOL_MAX_OPEN_CONN = 50
	}

	TICKER, err = cfg.Int64(Env, "TICKER")
	if err != nil {
		TICKER = 500
	}

	ACTIVEMQ_HOST_PORT, err = cfg.GetValue(Env, "ACTIVEMQ_HOST_PORT")
	if err != nil {
		log.Fatalf("ActiveMq地址配置错误 :%v", err)
	}

	ACTIVEMQ_TOPIC, err = cfg.GetValue(Env, "ACTIVEMQ_TOPIC")
	if err != nil {
		log.Fatalf("ActiveMq Topic 配置错误 :%v", err)
	}

	SERVER_PORT, err = cfg.GetValue(Env, "SERVER_PORT")
	if err != nil {
		log.Fatalf("服务器端口 配置错误 :%v", err)
	}
}
